package cn.com.ourclass.webviewnew.webnew;

import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.cjj.MaterialRefreshLayout;
import com.cjj.MaterialRefreshListener;
import com.hc.framework.mode.BaseActivity;
import com.hc.framework.titlebar.CommonTitleBar;
import com.hc.framework.utils.NetUtil;
import com.hc.framework.utils.StringUtil;
import com.hc.framework.web.config.ImageClickInterface;

import cn.com.ourclass.webviewnew.R;
import cn.com.ourclass.webviewnew.webnew.js.MiniwebInterface;
import cn.com.ourclass.webviewnew.webnew.client.MyWebChromeClient;
import cn.com.ourclass.webviewnew.webnew.client.MyWebViewClient;
import cn.com.ourclass.webviewnew.webnew.client.MyWebViewInterface;
import qiu.niorgai.StatusBarCompat;

import static com.example.hui.baseutils.R.id.video_fullView;

/**
 * Created by HuHaiqin on 2017/12/13.
 */

public class WebViewActivity extends BaseActivity implements MyWebViewInterface{

    WebView webView;
    // 全屏时视频加载view
    FrameLayout videoFullView;
    // 进度条是否加载到90%
    public boolean mProgress90;
    // 网页是否加载完成
    public boolean mPageFinish;
    // 加载视频相关
    private MyWebChromeClient mWebChromeClient;
    // 是否是全屏视频链接
    private boolean mIsMovie;
    //是否需要分享
    private boolean needShare;
    // 网页链接
    public String mUrl;
    public String statusBarColor;
    //是否需要头部
    private boolean needTitle;

    public MaterialRefreshLayout materialRefreshLayout;
    private LinearLayout shareLink;


    private void getIntentData() {
        if (getIntent() != null) {
            //mIsMovie = getIntent().getBooleanExtra("mIsMovie", false);
            mUrl = getIntent().getStringExtra("mUrl");
            statusBarColor = getIntent().getStringExtra("statusBarColor");
            if(statusBarColor.equals("")){
                statusBarColor = "#333333";
            }
        }
    }
    @Override
    protected void setRootView() {
        getIntentData();
        setContentView(R.layout.activity_browser);
        setStatusBar(statusBarColor,false);

    }

    @Override
    protected void initView() {
        webView = (WebView) findViewById(R.id.webview);

        WebSettings ws = webView.getSettings();
        // 网页内容的宽度是否可大于WebView控件的宽度
        ws.setLoadWithOverviewMode(false);
        // 保存表单数据
        ws.setSaveFormData(true);
        // 是否应该支持使用其屏幕缩放控件和手势缩放
        ws.setSupportZoom(true);
        ws.setBuiltInZoomControls(true);
        ws.setDisplayZoomControls(false);
        // 启动应用缓存
        ws.setAppCacheEnabled(true);
        // 设置缓存模式
        ws.setCacheMode(WebSettings.LOAD_DEFAULT);
        // setDefaultZoom  api19被弃用
        // 设置此属性，可任意比例缩放。
        ws.setUseWideViewPort(true);
        // 缩放比例 1
        webView.setInitialScale(1);
        // 告诉WebView启用JavaScript执行。默认的是false。
        ws.setJavaScriptEnabled(true);
        //  页面加载好以后，再放开图片
        ws.setBlockNetworkImage(false);
        // 使用localStorage则必须打开
        ws.setDomStorageEnabled(true);
        // 排版适应屏幕
        ws.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        // WebView是否支持多个窗口。
        ws.setSupportMultipleWindows(true);

        // webview从5.0开始默认不允许混合模式,https中不能加载http资源,需要设置开启。
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            ws.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }
        /** 设置字体默认缩放大小(改变网页字体大小,setTextSize  api14被弃用)*/
        ws.setTextZoom(100);

        mWebChromeClient = new MyWebChromeClient(this);
        webView.setWebChromeClient(mWebChromeClient);
        // 与js交互
        // 与js交互
        webView.addJavascriptInterface(new MiniwebInterface(this), "miniweb");
        webView.setWebViewClient(new MyWebViewClient(this));
    }

    public void loadWebpage(){
        if(NetUtil.getNetWorkState(this) == -1){
            ImageView nopage = (ImageView)findViewById(com.example.hui.baseutils.R.id.nonetwork);
            nopage.setVisibility(View.VISIBLE);
        }else {
            mPageFinish = false;
            webView.loadUrl(mUrl);
        }
    }

    @Override
    protected void initData() {
        loadWebpage();//加载网页
    }

    @Override
    protected void initTitle(CommonTitleBar titleBar) {
    }

    public void setTitle(String titleStr){


    }

    /**
     * 打开网页:
     *
     * @param mContext 上下文
     * @param mUrl      要加载的网页url
     */
    public static void loadUrl(Context mContext, String mUrl,String statusBarColor) {
        Intent intent = new Intent(mContext, WebViewActivity.class);
        intent.putExtra("mUrl", mUrl);
        intent.putExtra("statusBarColor",statusBarColor); //状态栏颜色
        mContext.startActivity(intent);
    }



    @Override
    public void addImageClickListener() {

    }

    public void close(){
        finish();
    }

    public void setStatusBar( String colorStr, boolean isHide) {
        //修改状态栏颜色
        StatusBarCompat.setStatusBarColor(this, Color.parseColor(colorStr));
        if(isHide){
            StatusBarCompat.translucentStatusBar(this);
        }

    }
}
